package com.hgl.bi.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 注：
 * 1. @TableField(exist = false) 表示该字段不存在于数据库中，仅用于序列化
 * 2. @JsonIgnore 表示该字段不会被序列化
 * 3. @TableLogic 表示该字段为逻辑删除标记
 * 4. @TableField(fill = FieldFill.INSERT) 表示该字段在插入时自动填充
 * @program: BI
 * @description: 基础实体
 * @author: hgl
 * @create: 2025-02-11 21:15
 */
@Data
public class BaseEntity implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 创建时间
     */
    @JsonIgnore
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @JsonIgnore
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 逻辑删除标记(默认，0: 未删除, 1: 已删除)
     */
    @TableLogic
    @JsonIgnore
    @TableField(value = "is_deleted")
    private Byte isDeleted;
}
